package com.leetcode;

/**
 * @program: leetcode
 * @author: jzhou
 * @date: 2022-12-01 20:08
 * @version: 1.0
 * @description: 找到最近的有相同 X 或 Y 坐标的点
 * 请返回距离你当前位置 曼哈顿距离 最近的有效点的下标（下标从 0 开始）。如果有多个最近的有效点，请返回下标最小的一个。如果没有有效点，请返回-1。
 **/
public class NearestValidPoint {
    public int nearestValidPoint(int x, int y, int[][] points) {
        int length = points.length;
        int best = Integer.MAX_VALUE, bestid = -1;
        for (int i = 0; i < length; i++) {
            int px = points[i][0], py = points[i][1];
            if (px == x){
                int dest = Math.abs(y - py);
                if (dest < best){
                    best = dest;
                    bestid = i;
                }
            }else if (py == y){
                int dest = Math.abs(x - px);
                if (dest < best){
                    best = dest;
                    bestid = i;
                }
            }
        }

        return bestid;
    }
}
